草庐IT

ML 方法

全部标签

c# - 什么时候调用 ConvertBack 方法?

我知道当要显示数据时,会调用Convert()方法对数据进行转换,然后显示转换后的数据。我想知道ConvertBack()方法何时被调用?它的目的是什么?我有一个DataGrid,它的ItemSource绑定(bind)到某个集合,并且我已经为收藏。当我创建IsReadOnly="True"(在DataGrid中)时,如果我双击单元格(对于IValueConverter实现)然后改变焦点。但是当我创建IsReadOnly="False"时,无论我对DataGrid及其单元格做什么,都不会调用ConvertBack方法。请解释DataGrid单元格的这种行为和IValueConverte

c# - 如何在运行时从 NUnit 测试运行中获取单元测试方法属性?

我将有关给定测试的各种信息(多个错误跟踪系统的ID)存储在一个属性中,如下所示:[TestCaseVersion("001","B-8345","X543")]publicvoidTestSomethingOrOther()为了在测试过程中获取这些信息,我写了下面的代码:publicstringGetTestID(){StackTracest=newStackTrace(1);StackFramesf;for(inti=1;i().First();returntcv.TestID;}}}问题在于,在Release模式下通过NUnit运行测试时,应该具有测试名称和这些属性的方法被替换为以

c# - 有没有更好的方法来创建多维强类型数据结构?

我需要一个多维数据结构,其中每个维度都是一个在设计时已知的小列表。在我程序的不同位置,我希望能够以强类型方式访问按不同维度“切片”的数据。我在下面放了一些示例代码,适用于使用嵌套界面的2D示例,但我想它在3D或4D中会变得非常可怕。正如@kvb指出的那样,所需的样板代码将呈指数级增长。谁有更好的建议?我的意思是,保持代码简单/简短/易于理解,同时仍然保留按照以下几行做事的能力:Dataa=newData(...)...SomeMethodThatOnlyCaresAboutRedThings(a.Red)//takesaIBySize...SomeMethodThatOnlyCares

c# - 在 SQL Server 上执行分页的最佳方法是什么?

我有一个包含超过200万条记录的数据库,我需要执行分页以在我的Web应用程序上显示,DataGrid每页必须有10条记录>.我已经尝试使用ROW_NUMBER(),但这种方式会选择所有200万条记录,然后只得到10条记录。我也尝试使用TOP10,但我必须保存第一个和最后一个id来控制页面。我读到使用DataAdapter.Fill()将选择所有内容,然后获取我需要的10条记录。哪种方法最好?我应该使用DataAdapter.Fill()吗?或者使用SQLServer的函数ROW_NUMBER()?或者尝试使用TOP10? 最佳答案

c# - XML反序列化泛型方法

我有下一个XML文件:d639a54f-baca-11e1-8067-001fd09b1dfd-24145e3b3b4cd-bb8e-11e1-8067-001fd09b1dfd0.28我将它反序列化为这个类:[XmlRoot("Root",IsNullable=false)]publicclassDocBalanceCollection{[XmlElement("Document")]publicListDocsBalanceItems=newList();}DocBalanceItem是:publicclassDocBalanceItem{[XmlElement("Id")]pub

c# - 分配免费委托(delegate)或其他方式通过地址调用方法?

我需要能够使用Mono在C#中基于函数指针调用单个方法。委托(delegate)为此工作得很好,这是他们的目的,但每次我设置委托(delegate)时他们似乎都分配52个字节(不是+=,而是使用=设置它,所以委托(delegate)总是引用一个且只有一个方法)。这个委托(delegate)每秒更改很多次,它会导致GC周期性地启动,我希望避免这种情况。我不介意初始内存分配,但有没有办法在我每次更改单个委托(delegate)值时阻止分配?如果不是,除了每次地址更改时不会分配任何内存的委托(delegate)之外,是否还有其他动态方式在C#中调用方法? 最佳答案

c# - 限制异步方法的并行度而不阻塞线程池线程

我有一个异步方法RequestInternalAsync()它向外部资源发出请求,并希望编写一个包装方法,通过减少并行性来限制对该方法的并发异步请求的数量。想到的第一个选项是TaskScheduler并发性有限(LimitedConcurrencyLevelTaskScheduler、ConcurrentExclusiveSchedulerPair等)。但要使用自定义调度程序运行任务,我必须使用TaskFactory启动任务只接受Action,即我不能通过不阻塞额外的线程来等待内部方法的执行来做到这一点。第二个选项是SemaphoreSlim,它完成了它的工作,但在这种情况下,我正在实

c# - 为什么不将所有服务类都集中到一个工厂方法中(而不是注入(inject)接口(interface))?

我们正在构建一个ASP.NET项目,并将我们所有的业务逻辑封装在服务类中。有些在域对象中,但通常那些是相当贫乏的(由于我们正在使用的ORM,这不会改变)。为了更好地启用单元测试,我们为每个服务定义接口(interface)并利用D.I.。这里有几个接口(interface):IEmployeeServiceIDepartmentServiceIOrderService...这些服务中的所有方法基本上都是任务组,类不包含私有(private)成员变量(除了对依赖服务的引用)。在我们担心单元测试之前,我们只是将所有这些类声明为静态的,并让它们直接相互调用。现在,如果服务依赖于其他服务,我们

c# - 在 C# 中实现稀疏数组/将整数映射到特定桶/范围数字的最快方法

我最初的问题是我需要在C#中实现一个非常快速的稀疏数组。最初的想法是使用正常的Dictionary并将其包装在我自己的类中以仅公开TValue类型参数。事实证明这很慢。所以我的下一个想法是将所需范围(UInt32.MinValue到UInt32.MaxValue)中的每个整数映射到某个大小的桶并使用它。所以我正在寻找一种将无符号整数X映射到桶Y的好方法,例如:将数字0-1023映射到8个不同的桶,每个桶包含128个数字,0-127、128-255。但如果有人有更好的方法在C#中实现快速稀疏数组,那也将不胜感激。 最佳答案 我也注意到

c# - 更改继承类中的抽象方法签名

假设我有一个名为Engine的类作为抽象基类。我还有派生自它的ElectrictEngine和FuelEngine类。我想创建一个为引擎加油的方法。我是否应该将其作为基类级别的抽象方法并以通用方式命名,例如fillUpEnergy?问题是,如果我有一个电动引擎,该方法采用的参数数量与燃料引擎需要传递的参数数量不同。因此,方法的签名不同。此外,是否有任何聪明的方法可以将通用方法用于两个引擎,但将其包装在更具体的名称中?例如:对于燃料发动机,“加油”,对于电动发动机,“充电电池”?同时对用户隐藏泛型方法? 最佳答案 在这种情况下,我会为